const fs = require('fs');
const path = require('path');

// 获取命令行参数中的目录路径和可选的文件名前缀，默认为空
const directoryPath = process.argv[2];
const FileName = process.argv[3] || '';

if (!directoryPath) {
  console.error('请提供一个目录路径');
  process.exit(1);
}

// 读取目录中的所有文件
fs.readdir(directoryPath, function (err, files) {
  if (err) {
    return console.error('无法读取目录: ' + err);
  }

  // 过滤出所有.png文件
  const pngFiles = files.filter(file => path.extname(file).toLowerCase() === '.png');

  // 按照文件名中的数字进行排序
  pngFiles.sort((a, b) => {
    const numA = parseInt(a.match(/\d+/), 10);
    const numB = parseInt(b.match(/\d+/), 10);
    return numA - numB;
  });

  // 重命名文件
  pngFiles.forEach((file, index) => {
    const oldPath = path.join(directoryPath, file);
    const newPath = path.join(directoryPath, `${FileName}${String(index).padStart(6, '0')}.png`);
    fs.rename(oldPath, newPath, function (err) {
      if (err) {
        return console.error('重命名失败: ' + err);
      }
      console.log(`文件已重命名为: ${newPath}`);
    });
  });
});

// Cocos Creator中会以字典进行排序，因此需要添加前导零
// node RenamePngFile.js /path/to/your/directory OptionalFileName_